home *** CD-ROM | disk | FTP | other *** search
/ Info-Mac 3 / Info_Mac_1994-01.iso / Development / Source / MultiSession 1.04 Source / Core 27⁄June⁄1993 / CSack.h < prev    next >
Encoding:
C/C++ Source or Header  |  1993-03-10  |  1018 b   |  42 lines  |  [TEXT/KAHL]

  1. /* CSack.h */
  2.  
  3. #pragma once
  4.  
  5. #include "CObject.h"
  6.  
  7. typedef struct SackBlock
  8.     {
  9.         struct SackBlock**    Next;
  10.         short                                NumElements;
  11.         short                                NumBytes;
  12.         char                                Data[];
  13.     } SackBlock;
  14.  
  15. struct    CSack    :    CObject
  16.     {
  17.      private:
  18.         SackBlock**        FirstBlock;
  19.         SackBlock**        NextHandleToAccess;
  20.         short                    NextIndexToAccess;
  21.         short                    BytesPerElement;
  22.         short                    MaxBytesPerBlock;
  23.         EXECUTE(MyBoolean Initialized;)
  24.         EXECUTE(MyBoolean Scannable;)
  25.  
  26.      public:
  27.         /* */                CSack();
  28.         /* */                ~CSack();
  29.         void                ISack(long TheSizeOfElement, long TheMaxBytesPerBlock);
  30.         void                PushElement(void* Element);
  31.         MyBoolean        KillElement(void* Element);
  32.         void                ResetScan(void);
  33.         MyBoolean        GetNext(void* PlaceToPut);
  34.         MyBoolean        GetCurrent(void* PlaceToPut);
  35.         MyBoolean        RewriteCurrent(void* PlaceToGet);
  36.         MyBoolean        AdvanceToNext(void);
  37.         void                InsertSorted(void* Element, short (*Comparator)(void*,void*));
  38.         void                KillCurrent(void);
  39.         ulong                NumElements(void);
  40.         MyBoolean        DoesItContain(void* Element);
  41.     };
  42.